.TH std::scoped_lock::scoped_lock 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::scoped_lock::scoped_lock \- std::scoped_lock::scoped_lock

.SH Synopsis
   explicit scoped_lock( MutexTypes&... m );           \fB(1)\fP \fI(since C++17)\fP
   scoped_lock( std::adopt_lock_t, MutexTypes&... m ); \fB(2)\fP \fI(since C++17)\fP
   scoped_lock( const scoped_lock& ) = delete;         \fB(3)\fP \fI(since C++17)\fP

   Acquires ownership of the given mutexes m.

   1) If sizeof...(MutexTypes) == 0, does nothing. Otherwise, if sizeof...(MutexTypes)
   == 1, effectively calls m.lock(). Otherwise, effectively calls std::lock(m...).
   2) Acquires ownership of the mutexes m... without attempting to lock any of them.
   The behavior is undefined unless the current thread holds a non-shared lock (i.e., a
   lock acquired by lock, try_lock, try_lock_for, or try_lock_until) on each object in
   m....
   3) Copy constructor is deleted.

   The behavior is undefined if m is destroyed before the scoped_lock object is.

.SH Parameters

   m - mutexes to acquire ownership of

.SH Exceptions

   1) Throws any exceptions thrown by m.lock().
   2) Throws nothing.

   Defect reports

   The following behavior-changing defect reports were applied retroactively to
   previously published C++ standards.

     DR    Applied to              Behavior as published               Correct behavior
   P0739R0 C++17      adopt_lock_t parameter was last, impeding class  moved to first
                      template argument deduction
